Major design principles of modern, large-scale applications are modularity, service orientation and elasticity. This leads to applications designed as service oriented architectures (SOA) or microservices which are networks of intercommunication service providers, dynamically adapted to changing application load conditions. The advantages of those design principles are highly flexible applications, both in terms of functionality and in terms of scalability.
In such architectures, the processing performed by a single processing node decreases, whereas the communication between different processing nodes increases to provide the desired application functionality.
As a consequence, the computer network connecting the computer systems that provide the services gains importance and becomes crucial for the performance behavior of the application.
System monitoring solutions evolved over the years and in different staged of the development were extending their coverage and granularity of insight.
For example U.S. Pat. No. 6,070,190 A to Reps et al. for ‘Client-based application availability and response monitoring and reporting for distributed computing environments’ describes a monitoring solution of the system which focuses on response time monitoring and reporting the values vs service level agreed metrics. Such system is a source of information about what is the current (and historical) level of service with possibility to alarm on specific condition or change. Such system focuses on monitoring only and monitoring specific entireties only. In many cases checking the response time and availability happen in active manner, to artificially generated activity, not actual application operation. Such solution does not try to explain the reason of the underperforming operation.
Another U.S. Pat. No. 5,655,081 A to Bonnell et al. for ‘System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture’ describes the agent based system which focuses on monitoring resources being a part or running on specific computer system. It also describes monitoring system aggregating gathered information in central node for storage and reporting.
U.S. Pat. No. 5,675,798 to Chang for ‘System And Method For Selectively And Contemporaneously Monitoring Processes In A Multiprocessing Server’ presents a monitoring system where the status of each client's application program, as it is reflected by a server process can be made available to the responsible person. The server process monitor program provides information to the network administrator at the granularity level of each of related client's process.
Current advanced server side performance monitoring systems, as e.g. described in U.S. Pat. No. 8,832,665 to Greifeneder at al. entitled “Method and system for tracing individual transactions at the granularity level of method calls throughout distributed heterogeneous applications without source code modifications including the detection of outgoing requests” or in U.S. Pat. No. 8,402,443 to Greifeneder at al ‘Method and system for automated analysis of the performance of remote method invocations in multi-tier applications using bytecode instrumentation’ which are included in its entirety herein by reference, are capable to provide tracing and measurement data for individual transactions, but have difficulty providing the visibility of the connecting computer network required to judge the performance situation of such massive distributed applications.
Besides such modern, service oriented or microservice applications, also traditional thin client/server oriented applications, like classical e-commerce applications as well as thin client applications like ERP software could benefit from a network side monitoring data. For such applications, the visibility gap would be closed between monitoring systems reporting browser side activities as e.g. the system disclosed in U.S. patent application Ser. No. 13/722,026 entitled “Method And System For Tracing End-To-End Transaction, Including Browser Side Processing And End User Performance Experience” which is included in its entirety herein by reference, and server side monitoring systems.
There are many metrics or key performance indicators which can characterize properties of computer network. Measurements like round trip time (RTT), latency, packet loss rate are measurable using different methods and used for different purposes. However just a measurement in context of the e.g. transit location in the computer network or even in context of recognized endpoints of the communication is not conclusive in term of influence of quality of communication processes on specific fragment of application infrastructure consisting of processes realizing specific functions by exchanging information over computer network.
Consequently, a method and system that overcomes the shortcomings of the current monitoring approaches and which is adequate for modern application architectures is required.
This section provides background information related to the present disclosure which is not necessarily prior art.